package com.lagou.StageOne;

public class Assignment2 {

    /**
     * 2. 编程题 编程找出 1000 以内的所有完数并打印出来。 所谓完数就是一个数恰好等于它的因子之和，如：6=1＋2＋3
     * @param args
     */


    public static void main(String[] args) {

        int num = 0;
        // 先列出1000以内所有的整数
        for (int i =1;i<=1000;i++) {
            //取余 比他小的每个数字 余0为该数因子
            for (int x =1;x<i;x++){
                if (i%x==0){
                    //如果是该数因子则存储到临时变量，等待和其他因子相加
                     num =x+num;
                     //如果已获取到的因子相加==该数 则该数为完数 输出
                     if (i==num){
                         System.out.println(i);
                     }
                }
            }
            //没循环判断完每个数，将临时变量重置
            num=0;
        }
    }
}
